1. Field of the Invention
The present invention relates to computer system architectures, and more particularly to an on-chip data transfer network including object tags or processing lists associated with objects for improved information routing between multiple on-chip modules.
2. Description of the Related Art
Computer systems have traditionally comprised a system unit or housing which comprises a plurality of electrical components comprising the computer system. A computer system typically includes a motherboard that is configured to hold the microprocessor and memory and the one or more busses used in the computer system. The motherboard typically comprises a plurality of computer chips or electrical components including intelligent peripheral devices, bus controllers, processors, bus bridges, etc.
More recently, computer systems are evolving toward an integration of functions into a handful of computer chips. This coincides with the ability of chip makers to place an increasingly large number of transistors on a single chip. For example, currently chip manufacturers are able to place up to ten million transistors on a single integrated circuit or monolithic substrate. It is anticipated that within several years chip makers will be able to place one billion transistors on a single chip. Thus, computer systems are evolving toward comprising a handful of computer chips, where each computer chip comprises a plurality of functions. The integration of a plurality of modules or functions on a single computer chip requires an improved data transfer chip architecture. In addition, due to the shorter distances and tighter integration of components on a chip, new data transfer methodologies are necessary to take advantage of this environment. Therefore, an improved system and method is desired for communications on complex computer chips.
A system is disclosed that operates on data in a communication system. The system comprises a communication network for routing objects that include data and a tag. The communication network is preferably comprised of a plurality of processing modules for processing the data included in the objects and a plurality of routing nodes that are operable to route the objects between different ones of the plurality of processing modules. Each of the processing modules includes a respective processing memory for storing the objects. Each of the routing nodes includes a respective routing memory for storing memory objects, and each of the routing nodes is operable to route objects throughout the system. The objects include stored objects stored in various ones of the respective processing memories and the respective routing memories. Each of the plurality of stored objects further includes one or more methods that are executable to perform operations on the data and a processing list that lists one or more of the methods to be executed on the data. Each of the plurality of processing nodes is operable to interrogate one or more of the objects to examine the processing list and execute one or more methods identified by the processing list to perform corresponding operations on the data.
In one embodiment, each of the objects may only be modified by a method included in the methods that are executable to perform operations on the data comprised in a respective stored object. In various embodiments, the tags include one or more of the group consisting of: a creation time stamp, a last modified time stamp, a priority value, a creator ownership value, an access allowed valued, a previously modified-by value, a last modified-by value, an assembly tag, and various destination process tags.
In one embodiment, each of the routing nodes is directly connected to two or more other routing nodes, and each of the routing nodes is operable to communicate data. A plurality of buses connects between each of the routing nodes. Each of the plurality of modules is coupled to at least one of the plurality of routing nodes, and the plurality of modules are operable to communicate with each other through the routing nodes. Furthermore, the plurality of routing nodes is dynamically re-configurable to form two or more separate communication paths.
A method is also contemplated, for routing objects in a communication system. The communication system comprises a plurality of routing nodes and a plurality of interconnecting processing modules coupled to the routing nodes, with each of the objects including a tag that identifies the object and the object data. The method generally comprises communicating a communication routing data structure to one or more of the plurality of routing nodes. The communication routing data structure includes information regarding one or more objects comprised in the communication system. The communication routing data structure further includes the intended destinations of the objects based on tags included in each of the objects. Destination tags included in the object may include logical process IDs, logical computational IDs, storage node IDs, or physical addresses. The routing nodes include logic to resolve logical tags.
A first processing module generates an object for transfer to another processing module. The first processing module transfers the object to a first routing node. The first routing node receives the object and examines the communication routing data structure to determine the destination of the object based on the tag included in the object. The first routing node determines the destination of the object and routes the object based on the destination. Preferably routing operates to transfer the object to its destination. In other cases, routing operates to transfer the object along its way towards the destination in an appropriate fashion. Additional routing nodes also operate to route the object to its destination.
In one embodiment, one or more of the objects further includes attributes of the data, methods for operating on the data, and a processing list. In another embodiment, the processing list identifies actions to be performed on or with the object by the destination. In still another embodiment, the object may only be modified by a method included in the methods for operating on the data comprised in the object. Items (e.g. entries) in the processing list itself may be used to determine routing such that the object is routed to a processing node capable of performing the function identified in the processing list.
In a further embodiment, when the destination is an intermediate destination, and another one of the plurality of processing modules is a final destination, the method further comprises another of the routing structures, corresponding to the intermediate destination, receiving the object. This routing node examines the communication routing data structure to determine the final destination of the object based on the tag included in the object, and determines the final destination of the object based on the tag included in the object and the communication routing data structure in response to the examining. This routing node then routes the object based on the destination in response to the determining and routes in order to transfer the object to the final destination.